#pragma once

#include "include.h"

class CInstanceInternal;
class CInstanceStudy;
class CInstanceSeries;
class CInstanceImage;
class CInstanceDocSet;
class CInstancePatient;


#define MAX_DOWNLOAD_COUNT		64

class PPOPHIES_CLASS IOphies
{
public:
	IOphies()				{};
	virtual ~IOphies()		{};


public:
	enum eOphiesStatus { TYPE_NONE = 0, TYPE_STUDY = 1, TYPE_SERIES, TYPE_INSTANCE, TYPE_DOCSET, TYPE_PATIENT };



public:
	virtual BOOL	Init() = 0;
	virtual BOOL	IsInit() = 0;
	virtual void	Destroy() = 0;

	virtual void	SetNotifyWnd(CWnd* pWnd)		{ m_pNotifyWnd = pWnd; }
	virtual CWnd*	GetNotifyWnd()					{ return m_pNotifyWnd; }

	virtual void	SetDownLoadDirectory(CString strDir)	{ m_strDownLoadDirectory = strDir; }
	virtual CString GetDownLoadDirectory()					{ return m_strDownLoadDirectory; }

	virtual BOOL	GetStudy(CString strUID = _T("")) = 0;
	virtual BOOL	GetSeries(int dcm_study_key) = 0;
	virtual BOOL	GetInstance(int dcm_series_key) = 0;
	virtual BOOL	GetDocSet() = 0;
	virtual BOOL	GetPatient() = 0;

	virtual void	GetSeriesList() = 0;

	virtual void	SetStatus(int nStatus) = 0;
	virtual int		GetStatus() = 0;

	virtual	int		GetStudyCount() = 0;
	virtual CInstanceStudy* GetInstanceStudy(int nIndex) = 0;

	virtual BOOL	OpenExam(CStringArray& arrInstancePath) = 0;
	virtual BOOL	OpenExam(CString strStudyKey, CString strSeriesKey = _T("")) = 0;


protected:
	CWnd*			m_pNotifyWnd;

	CString			m_strDownLoadDirectory;


public: // test yj
	virtual BOOL	GetStudyOne(int dcm_study_key) = 0;


};
